package com.niiwoo.civet.user.dto.request;

import com.alibaba.fastjson.JSON;
import com.niiwoo.civet.user.enums.MessageTemplateKeyEnum;
import com.niiwoo.civet.user.enums.UserLetterTypeEnum;
import java.io.Serializable;
import java.util.List;
import lombok.Getter;
import lombok.Setter;

/**
 * 用户站内信与极光推送服务请求参数
 * @author xueyuke
 * @date 2017-12-16
 */
@Setter
@Getter
public class UserLetterRequestDTO implements Serializable {
    private static final long serialVersionUID = 1862695731197146345L;

    /**
     * 站内信模板Key
     */
    private MessageTemplateKeyEnum.LetterTemplateKeyEnum letterTemplateEnum;

    /**
     * 站内信模板参数列表
     */
    private List<Object> letterTemplateParamList;

    /**
     * 极光推送模板Key
     */
    private MessageTemplateKeyEnum.JPushTemplateKeyEnum jpushTemplateKeyEnum;

    /**
     * 极光推送模板参数列表
     */
    private List<Object> jpushTemplateParamList;

    /**
     * 目标用户ID(必填)
     */
    private String toUserId;

    /**
     * 站内信按钮列表
     */
    private List<AppButtonDTO> letterButtonList;

    /**
     * 标的ID(非必填)
     */
    private Long projectId;

    /**
     * 用户发送消息类型枚举
     */
    private UserLetterTypeEnum userLetterTypeEnum;

    /**
     * 极光推送扩展信息,仅在需要极光推送时需要;
     */
    private JPushExtDTO jPushExt;

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}
